using System.ComponentModel;

namespace SvgToFontConverter.Models
{
    /// <summary>
    /// SVG文件信息模型
    /// </summary>
    public class SvgFileInfo : INotifyPropertyChanged
    {
        private string _status;
        
        public string FilePath { get; set; }
        public string FileName { get; set; }
        public string UnicodeChar { get; set; }
        
        public string Status
        {
            get => _status;
            set
            {
                _status = value;
                OnPropertyChanged(nameof(Status));
            }
        }
        
        public event PropertyChangedEventHandler PropertyChanged;
        
        protected virtual void OnPropertyChanged(string propertyName)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
    }
    
    /// <summary>
    /// 转换步骤枚举
    /// </summary>
    public enum ConversionStep
    {
        NotStarted,
        ValidatingFontForge,
        LoadingSvgFiles,
        Converting,
        Completed,
        Failed,
        Cancelled
    }
    
    /// <summary>
    /// 转换配置
    /// </summary>
    public class ConversionConfig
    {
        public string FontForgePath { get; set; }
        public string SvgFolderPath { get; set; }
        public string OutputFolderPath { get; set; }
        public string FontFamilyName { get; set; }
        public bool DeleteSvgAfterConvert { get; set; }
    }
}